var b = 10;
(function b() {//相当于自执行函数不能改 const b=function（）{}
   // 内部作用域，会先去查找是有已有变量b的声明，有就直接赋值20，确实有了呀。发现了具名函数 function b(){}，拿此b做赋值；
   // IIFE的函数无法进行赋值（内部机制，类似const定义的常量），所以无效。
  // （这里说的“内部机制”，想搞清楚，需要去查阅一些资料，弄明白IIFE在JS引擎的工作方式，堆栈存储IIFE的方式等）
    b = 20;
    console.log(b); // [Function b]
    console.log(window.b); // 10，不是20
})();


// let a=4
// a=1
// function fo(cb){
//    const a=0
//     cb()
// }
// fo(function cb(){
//     console.log(a);
// })
